// 1.4.0.1 运算符-位运算符-进制数相互转换
/**
 * 1.十进制转二进制
 * 2.二进制转十进制
*/

#include <iostream>

int main(void)
{
  // 1.十进制转二进制
  // 方法为：十进制数除2取余法，即十进制数除2，余数为权位上的数，得到的商值继续除，直到商为0为止。结果为 从最后一个余数读到第一个
  //  150 -> 10010110
  // 150 / 2 = 75 .... 0
  // 75 / 2 = 37 .... 1
  // 37 / 2 = 18 .... 1
  // 18 / 2 = 9 .... 0
  // 9 / 2 = 4 .... 1
  // 4 / 2 = 2 .... 0
  // 2 / 2 = 1 .... 0
  // 1 / 2 = 0 .... 1

  // 2.二进制转十进制
  // 方法为：把二进制数按权展开、相加即得十进制数。

  // 10010110 -> 150
  // 1*2^7 + 0*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 1*2^2 + 1*2^1 +0*2^0
  // 128   + 0     + 0     + 16    + 0     + 4     + 2     +0 = 150

  

  printf("----------end-----------\n");
  return 0;
}